Print the warning
authorSteve Klabnik <steve@steveklabnik.com>
Mon, 3 Oct 2016 20:55:24 +0000 (16:55 -0400)
committerAlex Crichton <alex@alexcrichton.com>
Fri, 7 Oct 2016 17:57:56 +0000 (10:57 -0700)
src/cargo/core/dependency.rs

index 61167a8b4f5fe845afd094a8c0f4e1240863d57b..bd909b309d97a290ae697b79cf1eeb5a7a766a61 100644 (file)
@@ -91,9 +91,9 @@ impl DependencyInner {
     pub fn parse(name: &str,
                  version: Option<&str>,
                  source_id: &SourceId,
-                 _config: &Config) -> CargoResult<DependencyInner> {
+                 config: &Config) -> CargoResult<DependencyInner> {
         let (specified_req, version_req) = match version {
-            Some(v) => (true, try!(DependencyInner::parse_with_deprecated(v))),
+            Some(v) => (true, try!(DependencyInner::parse_with_deprecated(v, config))),
             None => (false, VersionReq::any())
         };
 
@@ -105,16 +105,19 @@ impl DependencyInner {
         })
     }
 
-    fn parse_with_deprecated(req: &str) -> Result<VersionReq, ReqParseError> {
+    fn parse_with_deprecated(req: &str, config: &Config) -> CargoResult<VersionReq> {
         match VersionReq::parse(req) {
             Err(e) => {
                 match e {
                     ReqParseError::DeprecatedVersionRequirement(requirement) => {
-                        // warn here
+                        let msg = format!("One of your version requirements ({}) is invalid. \
+Previous versions of Cargo accepted this malformed requirement, but it is being deprecated. Please \
+use {} instead.", req, requirement);
+                        try!(config.shell().warn(&msg));
                         
                         Ok(requirement)
                     }
-                    e => Err(e),
+                    e => Err(From::from(e)),
                 }
             },
             Ok(v) => Ok(v),